<?php


namespace app\admin\controller;

use phpDocumentor\Reflection\DocBlock\Tags\Uses;
use think\Controller;
use think\Cookie;
use think\Db;
use think\Request;


class User extends Controller{
    public function index(){
        if(Request::instance()->isPost()){//用户信息指定查询遍历方法
            if($list = Db::name('user')->where('username',$_POST['username'])->paginate(10)){
                $this->assign('list', $list);
                $page = $list->render();
                $this->assign('page', $page);
                return $this -> fetch('contacts');
            }else{
                $this->error('数据输出有误');
            }
        }else{
             if($list = Db::name('user')->paginate(3)){//用户信息全部遍历方法
                $this->assign('list', $list);
                $page = $list->render();
                $this->assign('page', $page);
                return $this -> fetch('contacts');
                }else{
                 $this->error('数据输出有误');
            }
        }
    }

    public function delete(){//用户get单条删除方法 多条post删除方法
            if(admin_power()){
                if(Request::instance()->isGet()){
                    if(Db::table('user')->where('id',$_GET['id'])->delete()){
                        $this->success('删除成功','User/index',0,0);
                    }else{
                        $this->error('数据删除有误');
                    }
                }elseif(Request::instance()->isPost()){
                    if(Db::table('user')->delete($_POST)){
                        $this->success('删除成功','User/index',0,0);
                    }else{
                        $this->error('数据删除有误');
                    }
                }else{
                    $this->error('数据输出有误');
                }
            }else{
                $this->error('您没有足够的权限！！');
            }

    }

    public function modify(){//用户信息修改页面进入并进行遍历
        if(admin_power()){
                if(Request::instance()->isGet()){
                    if($sql=Db::table('user')->where('id',$_GET['id'])->find()){
                        $this->assign('user', $sql);
                        $this->assign('id',$_GET['id']);
                        return $this -> fetch('modify');
                    }else{
                        $this->error('数据删除有误');
                    }
                }else{
                    $this->error('数据输出有误');
                }
            }else{
                $this->error('您没有足够的权限！！');
            }

    }

    public function modify_update(){//用+户信息修改并保存方法
        if(admin_power()){
                if(Request::instance()->isPost()){
                    $pass = $_POST['password'];
                    $_POST['password'] = md5($_POST['password']);
                    if(Db::table('user')->where('id',$_GET["id"])->update($_POST)){
                        $this->email($_POST['email'],$pass);
                        $this->success('修改成功','User/index',0,1);
                    }else{
                        $this->error('修改失败');
                    }
                }else{
                    $this->error('数据输出有误');
                }
            }else{
                $this->error('您没有足够的权限！！');
            }
    }

    public function email($a,$b){
        $smtpserver = "smtp.163.com";//使用163邮箱服务器
        $smtpserverport = 25;//163邮箱服务器端口
        $smtpusermail = "13658041015@163.com";//你的163服务器邮箱账号
        $smtpemailto = $a;//收件人邮箱
        $smtpuser = "13658041015";//SMTP服务器的用户帐号//你的邮箱账号(去掉@163.com)
        $smtppass = "ysjau93178624"; //SMTP服务器的用户密码//你的邮箱密码
        $mailsubject = "在线学习网";//邮件主题
        $mailbody = "你的在线学习网账号的密码已经改为：".$b."      如有影响，不好意思";//邮件内容
        $mailtype = "TXT";//邮件格式（HTML/TXT）,TXT为文本邮件
        $smtp=new \smtp($smtpserver,$smtpserverport,true,$smtpuser,$smtppass);//这里面的一个true是表示使用身份验证,否则不使用身份验证.
        //是否显示发送的调试信息
        //$smtp->debug = TRUE;
        //发送邮件
        return $smtp->sendmail($smtpemailto, $smtpusermail, $mailsubject, $mailbody, $mailtype);
    }

    public function administrators(){
//        dump(admin_power());
        if(admin_power() == true){
                if($list = Db::name('admin')->paginate(10)){//管理员信息全部遍历方法
                    $this -> assign('list', $list);
                    $page = $list->render();
                    $this -> assign('page', $page);
                    return $this -> fetch('profile');
                }else{
                    $this->error('数据查询有误！');
                }
            }else{
                $this->error('您没有足够的权限！！');
            }

    }


    public function administrators_modify(){//管理员信息修改页面
            admin_power();
                    $g = $_GET['id'];
                if(Request::instance()->isGet()){
                   if($sql=Db::table('admin')->where('id',$_GET['id'])->find()){
                       $this->assign('id',$_GET['id']);
                       $this->assign('admin',$sql);
                       return view('modify_admin');
                   }else{
                       $this->error('数据查询有误！！');
                   }
                }else if(Request::instance()->isPost()){
                        $a = $_POST;
//                        $a['password'] = md5($_POST['password']);
                    if(Db::table('admin')->where('id',$g)->update($a)){
                        $this->success('修改成功','User/administrators',0,1);
                    }else{
                        $this->error('数据修改失败！！');
                    }
                }else{
                    $this->error('数据传输有误！！');
                }

    }

    public function administrators_delete(){//管理员删除方法
        if(admin_power()){
                if(Request::instance()->isGet()){
                    if(Db::table('admin')->where('id',$_GET['id'])->delete()){
                        $this->success('删除成功','User/administrators',0,1);
                    }else{
                        $this->error('删除失败！！');
                    }
                }else{
                    $this->error('数据传输有误！！');
                }
            }else{
                $this->error('您没有足够的权限！！');
            }
    }

    public function modifyInsert(){//管理员添加方法
        if(admin_power()){
                if(Request::instance()->isPost()){
                    $aa = $_POST;
//                    $aa['password'] = md5($_POST['password']);
//                    dump($_POST);
                    if($_POST['username']!="" || $_POST['password']!= ""|| $_POST['mobile'] != ""|| $_POST['power'] != ""){
                        if(Db::table('admin')->insert($aa)){
                            $this->success('添加成功','User/administrators',0,1);
                        }else{
                            $this->error('添加失败！！');
                        }
                    }else{
                        $this->error('数据传入有空字段，请重新输入');
                    }
                }else{
                    return view('modify_insert');
                }
            }else{
                $this->error('您没有足够的权限！！');
            }
    }

    public function power(){//点击改变权限
        $user = Db::table('admin')->where("username",Cookie::get('admin'))->find();
        if($user['id'] == $_POST['id']){
            echo json_encode('false');
        }else{
            if($power=Db::table("admin")->where("id",$_POST['id'])->find()){
                if($power["power"] == 1){
                    $data['power'] = 0 ;
                    Db::table("admin")->where("id",$_POST["id"])->update($data);
                    if($power = Db::table('admin')->where("username",Cookie::get('admin'))->find()){
                        Cookie::set('power',$power['power']);
                    }
                }elseif($power["power"] == 0){
                    $data['power'] = 1 ;
                    Db::table("admin")->where("id",$_POST["id"])->update($data);
                    if($power = Db::table('admin')->where("username",Cookie::get('admin'))->find()){
                        Cookie::set('power',$power['power']);
                    }
                }
            }
        }
    }


}